package com.qianli.cashmama.product.facade;

import com.fqgj.common.api.Page;
import com.fqgj.common.api.Response;
import com.qianli.cashmama.product.facade.enums.PagePositionEnum;
import com.qianli.cashmama.product.facade.request.AppBusinessProductRequest;
import com.qianli.cashmama.product.facade.result.AppBusinessProduct;
import com.qianli.cashmama.product.facade.result.AppBusinessProducts;
import com.qianli.cashmama.product.facade.result.BusinessProduct;

import java.util.List;

/**
 * @program: cashmama-product
 * @description  导流产品
 * @author: frank
 * @create: 2020-02-17 16:23
 **/
public interface BusinessProductFacade {

    /**
     * 根据页面位置获取导流产品列表
     * @param pagePositionEnum
     * @return
     */
    Response<List<AppBusinessProduct>> getAppBusinessProductList(PagePositionEnum pagePositionEnum);

    /**
     * 根据ID和页面位置获取导流产品列表
     * @param pagePositionEnum
     * @param businessProductId
     * @return
     */
    Response<List<AppBusinessProduct>> getAppBusinessProductList(PagePositionEnum pagePositionEnum, Long businessProductId);

    /**
     * 根据条件获取导流产品
     * @return
     */
    Response<List<AppBusinessProduct>> getAppBusinessProductList(AppBusinessProductRequest request);

    /**
     * 分页查询
     * @param pagePositionEnum
     * @param page
     * @return
     */
    Response<AppBusinessProducts> getAppBusinessProductListByPage(PagePositionEnum pagePositionEnum, Page page);

    /**
     * 获取导流产品列表
     * @return
     */
    Response<List<BusinessProduct>> getBusinessProductList();

    /**
     * 新增导流列表
     * @param appBusinessProduct
     * @return
     */
    Response<Boolean> addAppBusinessProduct(AppBusinessProduct appBusinessProduct);

    /**
     * 新增导流产品配置信息
     * @param businessProduct
     * @return
     */
    Response<Boolean> addBusinessProduct(BusinessProduct businessProduct);

    /**
     * 删除导流产品配置
     * @param id
     * @return
     */
    Response<Boolean> deleteBusinessProduct(Long id);

}
